package cn.kgm.user.dto.dto;

import cn.kgm.core.entity.Entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.SuperBuilder;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * # 技术改变自己 #
 * 用户基础表
 * @author kappi
 * @date   2024-04-08 13:28:48
 */
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@ApiModel(value = "UserUpdateDTO", description = "用户基础表")
public class UserUpdateDTO extends Entity<Long> {

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名", position = 2)
    @Size(max = 16, message = "用户名长度不能超过16")
    @NotBlank(message = "用户名不能为空")
    private String name;

    /**
     * 性别:[0,未知];[1,男];[2,女]
     */
    @ApiModelProperty(value = "性别:[0,未知];[1,男];[2,女]", position = 3)
    @NotNull(message = "性别:[0,未知];[1,男];[2,女]不能为空")
    private Boolean gender;

    /**
     * 头像地址
     */
    @ApiModelProperty(value = "头像地址", position = 4)
    @Size(max = 255, message = "头像地址长度不能超过255")
    @NotBlank(message = "头像地址不能为空")
    private String avatar;

    /**
     * 用户全平台UUID
     */
    @ApiModelProperty(value = "用户全平台UUID", position = 5)
    @Size(max = 32, message = "用户全平台UUID长度不能超过32")
    @NotBlank(message = "用户全平台UUID不能为空")
    private String uuid;

    /**
     * 自我介绍
     */
    @ApiModelProperty(value = "自我介绍", position = 6)
    @Size(max = 128, message = "自我介绍长度不能超过128")
    @NotBlank(message = "自我介绍不能为空")
    private String description;

    /**
     * 是否可用:[0,不可用];[1,可用]
     */
    @ApiModelProperty(value = "是否可用:[0,不可用];[1,可用]", position = 7)
    @NotNull(message = "是否可用:[0,不可用];[1,可用]不能为空")
    private Boolean usable;

}
